﻿using System.Collections.Generic;
using System.ServiceModel;
using Budjelar.Model.Entities;
using Budjelar.Repository;

namespace Budjelar.Web.Services
{
    [ServiceContract]
    public interface IArtikliService
    {
        [OperationContract]
        IEnumerable<Artikal> VratiArtikle();
        [OperationContract]
        void SacuvajArtikal(Artikal artikal, IEnumerable<VrstaArtikla> vrsteArtiklaZaBrisanje);
    }

    public class ArtikliService : IArtikliService
    {
        private readonly IRepository<Artikal> m_ArtikliRepository;

        public ArtikliService(IRepository<Artikal> artikliRepository)
        {
            m_ArtikliRepository = artikliRepository;
        }

        public IEnumerable<Artikal> VratiArtikle()
        {
            return m_ArtikliRepository.GetAll();
        }

        public void SacuvajArtikal(Artikal artikal, IEnumerable<VrstaArtikla> vrsteArtiklaZaBrisanje)
        {
            if (vrsteArtiklaZaBrisanje != null)
            {
                foreach (var vrstaArtikla in vrsteArtiklaZaBrisanje)
                {
                    vrstaArtikla.State = State.Deleted;
                    artikal.VrsteArtikla.Add(vrstaArtikla);
                }
            }
            m_ArtikliRepository.Save(artikal);
            
        }
    }
}